"""
387. 字符串中的第一个唯一字符
简单
相关标签
相关企业
给定一个字符串 s ，找到 它的第一个不重复的字符，并返回它的索引 。如果不存在，则返回 -1 。



示例 1：

输入: s = "leetcode"
输出: 0
示例 2:

输入: s = "loveleetcode"
输出: 2
示例 3:

输入: s = "aabb"
输出: -1


提示:

1 <= s.length <= 105
s 只包含小写字母
"""
class Solution:
    def firstUniqChar(self, s: str) -> int:
        # 思路：删除字符串中重复的字符，剩下的字符串中第一个字符即为所所求
        # list_s = list(s)
        # diff = list(filter(lambda x :list_s.count(x)==1,list_s))
        # print(diff)
        # if len(diff)>0:
        #     return list_s.index(diff[0])
        # else:
        #     return -1
        count_dict = {}
        for chat in s:
            # chat能在字典找到，则值+1，若不能找到返回0+1，即第一次加入字典
            count_dict[chat] = count_dict.get(chat,0)+1
        print(count_dict)
        for k,v in count_dict.items():
            if v == 1:
                return s.index(k)
            # else:
        return -1
if __name__ == '__main__':
    print(Solution().firstUniqChar('leetcode'))